package com.whfc.emp.dao;

import com.whfc.emp.dto.AppEmpAnaNumDTO;
import com.whfc.emp.dto.AppHelmetDTO;
import com.whfc.emp.entity.AppEmpData;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface AppEmpDataMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(AppEmpData record);

    int insertSelective(AppEmpData record);

    AppEmpData selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(AppEmpData record);

    int updateByPrimaryKey(AppEmpData record);

    /**
     * 插入 or 更新
     *
     * @param record
     * @return
     */
    void insertOrUpdate(AppEmpData record);

    /**
     * 查询人员数据
     *
     * @param empId
     * @return
     */
    AppEmpData selectByEmpId(@Param("empId") Integer empId);

    /**
     * 批量更新人员的在线状态为离线
     *
     * @return
     */
    int batchUpdateNetStateOffline();

    /**
     * 批量初始化人员的出勤状态
     *
     * @return
     */
    int batchUpdateAttendStateAbsence();

    /**
     * 查找出勤人数
     *
     * @param deptIds
     * @return
     */
    Integer countAttendNum(@Param("deptIds") List<Integer> deptIds);

    /**
     * 查询出勤统计
     *
     * @param deptId
     * @return
     */
    AppEmpAnaNumDTO selectAttendNum(@Param("deptId") Integer deptId);

    /**
     * 根据人员idS查找
     *
     * @param empIds
     * @return
     */
    List<AppHelmetDTO> selectByEmpIds(@Param("empIds") List<Integer> empIds);

    /**
     * 查找安全帽最新数据
     *
     * @param deptId
     * @param corpId
     * @param groupId
     * @param keyword
     * @return
     */
    List<AppHelmetDTO> selectHelmetLatestData(@Param("deptId") Integer deptId,
                                              @Param("corpId") Integer corpId,
                                              @Param("groupId") Integer groupId,
                                              @Param("keyword") String keyword);

    /**
     * 根据empId删除
     *
     * @param empId
     */
    void deleteByEmpId(@Param("empId") Integer empId);
}